#ifndef __KEY_H__
#define __KEY_H__

#define VIENNA_GPIOC_0_MMR_BASE 0xB3500000
#define VIENNA_GPIOC_1_MMR_BASE 0xB3600000
#define VIENNA_GPIOC_2_MMR_BASE 0xB3700000
#define VIENNA_GPIOC_3_MMR_BASE 0xAB000000

#define GPIOC_DATA_IN 0x08

#define GPIO_KEY1   0
#define GPIO_KEY2   1
#define GPIO_KEY3   2
#define GPIO_KEY4   3
#define GPIO_KEY5   4

#define KEY1    (1 << GPIO_KEY5)    // 确认键
#define KEY2    (1 << GPIO_KEY1)    // 上键
#define KEY3    (1 << GPIO_KEY4)    // 下键
#define KEY4    (1 << GPIO_KEY2)    // 左键
#define KEY5    (1 << GPIO_KEY3)    // 右键

#define KEY_MASK   (KEY5 | KEY4 | KEY2 | KEY3 | KEY1)
#define KEY_PRESS(key)	((~key) & KEY_MASK)

void gpio_init(void);
int create_keys_thread(void);
void IRCUT_modle(int modle);
void IRCUT_init(int initial_modle);

#endif
